7장. AI 일꾼 여럿에게 나눠 시키기
출처: 『혼자 공부하는 바이브 코딩 with 클로드 코드』(조태호) | 예제 코드: github.com/taehojo/vibecoding
코드는 분위기만 — Opus, Sonnet, index.html 같은 말은 몰라도 됩니다. 표의 '비유'와 '위험'만 봐도 충분해요.
지금까지는 AI 한 명에게 모든 걸 시켰다.
이 장에서는 AI를 여러 명으로 나눈다.
코드 검사하는 AI, 디자인하는 AI, 테스트하는 AI를 따로따로 만든다.
그리고 그들끼리 일을 주고받게 한다.
식당 주방에 요리사 한 명만 있다가, 재료 담당·불 담당·플레이팅 담당을 나누는 것과 같다.
0. 이 장의 새 단어
0장 용어집에 없는 말만 셋 모았다.
이 셋만 알면 7장이 술술 읽힌다.
나머지 어려운 말(프롬프트·PRD·5W1H 등)은 0장에 이미 있다.
서브에이전트(subagent, 전문 AI 일꾼)
한 문장 뜻 — 한 가지 일만 전문으로 하도록 따로 만들어 둔 AI 도우미. 메인 AI가 필요할 때 불러 쓴다.
일상비유 — 회사의 부서별 담당자. "회계는 김 대리, 디자인은 박 사원"처럼, 일마다 부르는 전문 직원이 따로 있다.
한 줄 예 —
# 코드 검사만 하는 전문 일꾼을 따로 만든다
ai.create_agent("code-reviewer", job="버그 찾기")
도구 권한(tool permission, Read-only / All tools)
한 문장 뜻 — 그 AI 일꾼이 파일을 읽기만 할지(Read-only), 직접 고치기까지 할지(All tools)를 정해 주는 허락 범위.
일상비유 — 도서관 출입증. '열람만' 카드를 받은 사람은 책을 볼 수만 있고, '대출 가능' 카드를 받은 사람은 빌려 갈 수 있다.
한 줄 예 —
# 읽기만 허락 = 코드를 못 고침 / 모두 허락 = 코드도 고침
agent.permission = "Read-only" # 검토만, 수정 불가
직렬 처리 / 병렬 처리(serial / parallel)
한 문장 뜻 — 일을 한 명씩 차례로 시키면 직렬, 여럿에게 동시에 시키면 병렬.
일상비유 — 빨래방. 세탁기 한 대로 한 통씩 돌리면 직렬(느리지만 안 엉킴), 세탁기 세 대로 동시에 돌리면 병렬(빠르지만 빨래가 섞일 수 있음).
한 줄 예 —
# 직렬: A 끝나면 B 시작 / 병렬: A·B·C 동시에
run("A"); run("B") # 직렬
run_all(["A", "B", "C"]) # 병렬
이 장에서 딱 3가지만
TL;DR
- 서브에이전트 = 일 잘하는 전문 AI 일꾼. 한 명에게 다 시키지 말고, 일마다 전문가를 따로 만들어 부른다.
- 일꾼마다 허락 범위와 머리(모델)를 정해 준다. 검토만 할 일꾼은 '읽기만', 고칠 일꾼은 '모두 허락'. 어려운 일엔 똑똑한 모델, 쉬운 일엔 빠른 모델.
- 여러 일꾼이 줄지어(직렬) 또는 동시에(병렬) 협업해서, 앱 하나를 통째로 자동으로 만든다.
1. 서브에이전트 — 일마다 전문 일꾼을 따로 만든다
막히는 장면
AI 한 명에게 "코드 검사하고, 빠르게 고치고, 디자인도 예쁘게 해 줘"라고 한꺼번에 시킨 적 있죠?
이것저것 섞어 시키면, AI도 뭐에 집중할지 헷갈린다.
검사하다 말고 디자인을 건드리고, 디자인하다 말고 다른 코드를 고친다.
그래서 일을 사람마다 나눠 주듯 AI도 나눈다.
검사 담당 AI, 속도 담당 AI, 디자인 담당 AI를 따로 만든다.
그 전문 AI 일꾼 하나하나가 서브에이전트다.
일상비유
작은 식당은 사장 혼자 주문받고 요리하고 설거지한다.
바빠지면 정신이 없다.
그래서 홀 담당·주방 담당·설거지 담당을 나눈다.
각자 자기 일만 잘하면 되니, 전체가 빨라지고 실수가 준다.
서브에이전트가 바로 이 '담당 나누기'다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 혼자 다 하는 사장 | ai.ask("검사도 하고 고치고 디자인도") |
뭐에 집중할지 헷갈려 엉성해짐 |
| 일마다 전담 직원 | ai.create_agent("reviewer") |
너무 많이 만들면 관리가 복잡해짐 |
한 문장 정의
서브에이전트는 한 가지 일만 전문으로 하도록 따로 만들어 둔 AI 도우미이며, 메인 AI가 필요할 때 불러서 쓴다.
만드는 법 — /agents 한 줄이면 끝
클로드 코드 안에서 /agents라고 치면 일꾼 만들기 창이 열린다.
그다음은 묻는 말에 답만 고르면 된다.
/agents 입력 -> "새 일꾼 만들기" 선택
-> 어떤 일을 할지 한 문장으로 설명
-> 허락 범위 고르기 (읽기만 / 모두)
-> 머리(모델) 고르기
-> 색깔 고르고 저장
설명만 적으면, 클로드가 알아서 일꾼을 만들어 준다.
코드를 짤 필요가 없다.
예시 폭격
예시 1 (완성 예) — 코드 검사 일꾼 만들기
이렇게 한 문장으로 설명한다.
# "코드 리뷰어"라는 일꾼을 만든다
설명 = "코드를 읽고 버그가 없는지, 규칙대로 잘 짰는지 점검하는 검토자"
설명만 적으면 'code-bug-analyzer'라는 일꾼이 생긴다.
이 일꾼을 부르면 코드를 쭉 읽고 "여기 버그 있어요" 리포트를 준다.
예시 2 (부분 완성) — 빈칸 채우기
디자인 담당 일꾼을 만들려 한다. 빈칸에 들어갈 설명은?
설명 = "______" # 빈칸을 채워 보세요
# 답 예시: "버튼 배치와 화면 색을 보기 좋게 다듬는 사용자 경험 담당자"
핵심은 무슨 일을 하는지 한 문장으로 또렷이 적는 것이다(0장의 '프롬프트가 곧 실력' 그대로다).
예시 3 (독립 적용) — 직접 해 보기
"오타와 맞춤법만 잡는 일꾼"을 만든다면, 설명을 어떻게 적을까?
스스로 한 문장을 만들어 보자.
또렷한 한 문장이면 어떤 일꾼이든 만들 수 있다.
미니 시나리오
블로그를 만들었는데 어딘가 버그가 있는 것 같다.
→ "코드 검사 일꾼아, 이 블로그 코드 한번 봐 줘"라고 부른다.
→ 일꾼이 "23번째 줄에 버튼이 두 번 만들어져요"처럼 콕 집어 알려 준다.
→ 내가 코드를 다 읽지 않아도, 전문 일꾼이 대신 봐 준다.
예를 들어 부를 때는 이렇게만 적으면 된다.
# 만든 일꾼을 이름으로 부른다
ai.ask("code-bug-analyzer가 이 블로그 코드를 검토해 줘")
2. 일꾼마다 허락 범위와 머리를 정해 준다
막히는 장면
코드를 검토만 시키려고 일꾼을 불렀는데, 그 일꾼이 코드를 막 고쳐 버린 적 있죠?
검토만 부탁했는데 멋대로 손대면, 멀쩡한 부분까지 망가질 수 있다.
그래서 일꾼을 만들 때 "넌 읽기만 해", "넌 고쳐도 돼"를 미리 정한다.
이게 도구 권한이다.
또, 일꾼마다 머리(모델)도 고를 수 있다.
어려운 일엔 똑똑하지만 느린 머리, 쉬운 일엔 단순하지만 빠른 머리를 준다.
일상비유 — 도구 권한
도서관 출입증을 생각하자.
'열람 전용' 카드를 받은 사람은 책을 볼 수만 있다(읽기만 = Read-only).
'대출 가능' 카드를 받은 사람은 책을 빌려 가 표시도 할 수 있다(모두 = All tools).
검토 담당에겐 열람 전용 카드를, 수정 담당에겐 대출 카드를 준다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 열람 전용 출입증 | permission = "Read-only" |
검토만 함 — 버그를 직접 못 고침 |
| 대출 가능 출입증 | permission = "All tools" |
멋대로 고쳐 멀쩡한 데가 깨질 수 있음 |
일상비유 — 머리(모델) 고르기
같은 일도 사람마다 잘 맞는 게 다르다.
복잡한 계약서 검토는 베테랑 변호사에게(느리지만 정확).
단순 서류 정리는 신입에게(빠르고 충분).
AI도 머리를 골라 쓴다.
| 머리(모델) | 성격 | 잘 맞는 일 |
|---|---|---|
| Opus | 똑똑하지만 느리고 비쌈 | 복잡한 코드 분석 |
| Sonnet | 적당히 빠르고 똑똑함 | 대부분의 일 |
| Haiku | 빠르지만 단순함 | 오타 고치기 같은 가벼운 일 |
머리를 고를 때 'Inherit'(상속)을 고르면, 메인 AI와 똑같은 머리를 그대로 쓴다.
따로 고민하기 싫으면 이걸 고르면 된다.
한 문장 정의
도구 권한은 그 일꾼이 파일을 읽기만 할지 고치기까지 할지 정하는 허락이고, 모델은 그 일꾼이 쓸 머리의 똑똑함·속도를 고르는 것이다.
단순 규칙
검토·점검 일꾼은 '읽기만(Read-only)', 직접 만들고 고치는 일꾼은 '모두(All tools)'.
머리는 헷갈리면 Sonnet부터. 비싸도 정확해야 하는 일만 Opus.
예시 폭격
예시 1 (완성 예) — 검토 일꾼은 읽기만
검토_일꾼 = {
"일": "버그 찾기",
"허락": "Read-only", # 읽기만 — 못 고침
"머리": "Opus" # 어려운 분석이라 똑똑한 머리
}
검토 일꾼은 고칠 일이 없으니 '읽기만'으로 충분하다.
실수로 코드를 망칠 위험이 0이 된다.
예시 2 (잘못된 예 vs 올바른 예) — before/after
# before — 검토 일꾼에게 '모두' 허락을 줌
검토_일꾼["허락"] = "All tools" # 검토하다 멋대로 고쳐 버림 (위험)
# after — 검토 일꾼은 '읽기만'으로 묶음
검토_일꾼["허락"] = "Read-only" # 안전: 읽고 알려만 줌
예시 3 (부분 완성) — 빈칸 채우기
속도를 빠르게 고치는 일꾼이다. 빈칸에 뭐가 들어갈까?
최적화_일꾼 = {
"일": "느린 부분 빠르게 고치기",
"허락": "______", # 고쳐야 하니까?
"머리": "Inherit"
}
# 답: "All tools" — 직접 고쳐야 하므로 모두 허락
미니 시나리오
오타만 잡는 가벼운 일꾼을 만든다.
→ 어려운 일이 아니니 머리는 Haiku(빠름).
→ 오타를 직접 고쳐야 하니 허락은 All tools(모두).
→ 가벼운 일엔 가벼운 머리, 고치는 일엔 고치는 허락. 일에 맞춰 짝지어 준다.
예를 들어 정리하면 이렇다.
오타_일꾼 = {"허락": "All tools", "머리": "Haiku"} # 고침 + 빠름
검토_일꾼 = {"허락": "Read-only", "머리": "Opus"} # 읽기만 + 똑똑
3. 여러 일꾼이 줄지어 또는 동시에 협업한다
막히는 장면
일꾼을 셋 만들었다.
그런데 셋을 어떻게 부려야 할까?
한 명 끝나면 다음 한 명? 아니면 셋 다 동시에?
순서를 잘못 정하면, 디자인 일꾼이 코드도 보기 전에 화면부터 그리는 일이 생긴다.
그래서 차례로(직렬) 시킬지, 동시에(병렬) 시킬지를 안다.
일상비유
빨래방을 떠올리자.
세탁기 한 대로 흰옷 → 색옷 → 이불을 한 통씩 차례로 돌리면, 느리지만 색이 안 섞인다(직렬).
세탁기 세 대로 동시에 돌리면, 빠르지만 자칫 빨래가 섞일 수 있다(병렬).
AI 일꾼도 똑같다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 세탁기 한 대 차례로 | run("검토"); run("수정") |
느림 — 한 명 끝나야 다음 시작 |
| 세탁기 세 대 동시 | run_all(["A", "B", "C"]) |
빠르지만 같은 파일 건드려 충돌 가능 |
누가 정할까
다행히 클로드 코드가 알아서 정한다.
일이 서로 영향을 주면 차례로(직렬), 서로 안 겹치면 동시에(병렬) 시킨다.
나는 "이 일꾼들로 이거 해 줘"라고만 부탁하면 된다.
한 문장 정의
직렬 처리는 일꾼을 한 명씩 차례로 시켜 안전하지만 느리고, 병렬 처리는 동시에 시켜 빠르지만 같은 파일을 건드리면 충돌할 수 있다.
안전장치 — 작업 전 백업
여럿이 동시에 손대면 가끔 사고가 난다.
그래서 시작 전에 "지금 상태를 백업해 줘"라고 한 번 부탁해 둔다.
0장 용어집의 Git(타임머신)과 같은 마음이다 — 망쳐도 되돌릴 수 있게.
# 큰 작업 전, 안전벨트부터
ai.ask("현재 상태를 백업해 줘")
# 사고가 나면
ai.ask("백업으로 복원해 줘") # 이전 상태로 되돌림
예시 폭격
예시 1 (완성 예) — 세 일꾼을 줄지어 부르기
# 검토 → 수정 → 디자인 순서로 한 명씩 (직렬)
ai.ask("검토 일꾼이 코드를 보고, "
"그다음 수정 일꾼이 고치고, "
"마지막에 디자인 일꾼이 다듬어 줘")
말로 순서를 적으면, 클로드가 그 순서대로 일꾼을 부른다.
예시 2 (잘못된 예 vs 올바른 예) — before/after
# before — 백업 없이 셋을 동시에 풀어 버림
ai.ask("일꾼 셋이 동시에 다 고쳐 줘") # 충돌 나면 되돌릴 수 없음
# after — 백업 먼저, 그다음 작업
ai.ask("현재 상태를 백업해 줘")
ai.ask("일꾼 셋이 동시에 다 고쳐 줘") # 사고 나도 복원 가능
예시 3 (독립 적용) — 직접 해 보기
"먼저 검토, 검토 끝나면 디자인"을 시키고 싶다.
이건 직렬일까 병렬일까?
→ 한 명 끝나야 다음이 시작되니 직렬이다.
스스로 한 문장 프롬프트로 적어 보자.
미니 시나리오
만든 앱이 느리고 못생겼다.
→ "백업해 줘"로 안전벨트를 맨다.
→ "검토 일꾼이 문제를 찾고, 수정 일꾼이 속도를 고치고, 디자인 일꾼이 화면을 다듬어 줘"라고 부탁한다.
→ 클로드가 알아서 차례로/동시에 시켜, 앱이 빨라지고 예뻐진다.
→ 혹시 망가지면 "백업으로 복원해 줘"로 되돌린다.
4. 한데 모으기 — 나만의 AI 개발팀
위 셋(일꾼 만들기·허락 정하기·협업)을 합치면 AI 개발팀 하나가 된다.
진짜 회사 개발팀처럼 역할을 나눈 일꾼 다섯이다.
일상비유
새 가게를 차린다고 하자.
기획 담당이 "뭘 팔지" 정하고, 주방이 음식을 만들고, 홀이 손님을 맞고, 점검 담당이 위생을 보고, 외부 업체가 배달을 붙인다.
소프트웨어도 똑같이 다섯 역할로 나눈다.
| 역할(일꾼) | 하는 일 | 비유 |
|---|---|---|
| 기획 담당 | 무엇을 왜 만들지 정리(PRD 작성) | 가게 컨셉 잡는 사장 |
| 백엔드 담당 | 보이지 않는 속 기능 | 주방(요리) |
| 프론트엔드 담당 | 눈에 보이는 화면 | 홀(손님 응대) |
| 품질 담당 | 잘 되는지 테스트·버그 잡기 | 위생 점검 |
| AI 연동 담당 | 똑똑한 AI 기능 붙이기 | 외부 배달 연결 |
여기서 PRD와 5W1H는 0장 용어집에 이미 있다.
PRD는 '집 짓기 전 설계도', 5W1H는 '빠진 항목 없는 여섯 칸 점검표'였다.
예시 폭격 — 실전 앱 두 개
예시 1 (완성 예) — AI 공감 다이어리
오늘 일을 한 줄 쓰면, AI가 기분을 읽고 위로해 주는 일기 앱이다.
만드는 순서는 일꾼들에게 한 번에 부탁한다.
ai.ask(
"백엔드 담당이 기분 분석 기능을 만들고, "
"프론트엔드 담당이 따뜻한 일기장 화면을 만들고, "
"품질 담당이 잘 되는지 끝까지 테스트해서, "
"브라우저로 바로 쓰는 파일 하나로 만들어 줘"
)
결과로 '한 줄 일기 → 기분 분석 → 위로 메시지'가 도는 앱이 나온다.
예시 2 (부분 완성) — PDF 요약 앱
PDF를 올리면 AI가 짧게 요약해 주는 앱이다. 빈칸에 들어갈 일꾼은?
ai.ask(
"______ 담당이 무엇을 만들지 PRD로 정리하고, " # 빈칸
"백엔드 담당이 PDF에서 글자를 뽑고, "
"AI 연동 담당이 그 글을 요약하고, "
"프론트엔드 담당이 끌어다 놓는 화면을 만들고, "
"품질 담당이 테스트해 줘"
)
# 답: "기획" — 무엇을 왜 만들지 먼저 정하는 PRD 담당
예시 3 (독립 적용) — 직접 해 보기
"투두 리스트(할 일 목록) 앱"을 만든다면, 다섯 일꾼 중 누구에게 무엇을 시킬지 한 문장씩 적어 보자.
기획·백엔드·프론트엔드·품질만 써도 충분하다(AI 기능이 없으면 AI 연동 담당은 빼도 된다).
단순 규칙
일꾼은 필요한 만큼만. 다섯을 다 쓸 필요 없다. AI 기능 없는 앱이면 AI 연동 담당은 빼도 된다.
일꾼이 많을수록 관리가 복잡해진다. 일에 꼭 맞는 일꾼만 부른다.
미니 시나리오
"PDF 요약 앱 만들어 줘"라고 막연히 시키면 결과가 들쭉날쭉하다.
→ 먼저 기획 담당에게 "뭘 만들지 정리해 줘"(PRD).
→ 그다음 백엔드·AI 연동·프론트엔드·품질 담당을 순서대로 부른다.
→ 역할을 나눠 시키니, 앱 하나가 통째로 짜임새 있게 나온다.
정리
이 장의 큰 줄기 세 가지만 챙기면 된다.
- 서브에이전트 = 일마다 따로 만든 전문 AI 일꾼.
/agents로 설명만 적으면 생긴다. - 일꾼마다 허락(읽기만/모두)과 머리(모델)를 일에 맞게 정해 준다. 검토는 읽기만, 수정은 모두.
- 여러 일꾼이 차례로(직렬)/동시에(병렬) 협업해 앱 하나를 통째로 만든다. 큰 작업 전엔 백업으로 안전벨트.
한 걸음 더 ▸ (지금 몰라도 됨)
"일꾼을 무조건 많이 만들면 좋은 거 아냐?"는 아니다.
일꾼이 많아질수록 누가 뭘 했는지 따라가기 힘들고, 같은 파일을 건드려 충돌도 잦아진다.
지금은 "일에 꼭 맞는 일꾼만, 적게"라는 규칙만 들고 가면 충분하다.
다음 장 예고
다음 8장에서는 지금까지 배운 것을 모아, 더 큰 결과물을 직접 만들어 본다.
지금은 7장의 '일꾼 나눠 시키기'만 머리에 있으면 충분하다.
클릭하거나 Space를 눌러 뒤집기